<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>事件处理</title>
</head>
<body>
  <!--准备好一个 div-->
  <div id="test"></div>

  <!--引入 react 核心库-->
  <script type="text/javascript" src="../js/16.8.4/react.development.js"></script>
  <!--引入 react-dom 用于支持 react 操作 DOM-->
  <script type="text/javascript" src="../js/16.8.4/react-dom.development.js"></script>
  <!--引入 babel 用于将 jsx 转为 js-->
  <script type="text/javascript" src="../js/16.8.4/babel.min.js"></script>

  <script type="text/babel">
    // 创建组件
    class Demo extends React.Component{
      /**
       *  1.通过onXxx属性指定事件处理函数(注意大小写)
            1)React使用的是自定义(合成)事件, 而不是使用的原生DOM事件  ----为了兼容性
            2)React中的事件是通过事件委托方式处理的(委托给组件最外层的元素)   ----为了高效
          2.通过event.target得到发生事件的DOM元素对象
       *
       */

      // 创建ref容器
      myLeftRef = React.createRef()
      myRightRef = React.createRef()
      // 展示左侧输入框数据
      showLeftData = ()=>{
        alert(this.myLeftRef.current.value)
      }
      // 展示右侧输入框数据
      showRightData = (event)=>{
        alert(event.target.value)
      }
      render(){
        return(
            <div>
              <input ref={this.myLeftRef} type="text" placeholder="点击按钮提示数据"/>&nbsp;
              <button onClick={this.showLeftData}>点我提示左侧数据</button>&nbsp;
              <input  onBlur={this.showRightData} type="text" placeholder="失去焦点提示数据"/>
            </div>
        )
      }
    }
    // 渲染组件到页面
    ReactDOM.render(<Demo/>,document.getElementById('test'))
  </script>
</body>
</html>
